package com.ruoyi.member.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 会员订单对象 member_order
 *
 * @author ruoyi
 * @date 2025-10-28
 */
public class MemberOrder extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 订单ID */
    private Integer memberOrderId;

    /** 用户ID */
    @Excel(name = "用户ID")
    private Long userId;

    /** 商户订单号 */
    @Excel(name = "商户订单号")
    private String outTradeNo;

    /** 微信支付订单号 */
    @Excel(name = "微信支付订单号")
    private String transactionId;

    /** 订单金额(分) */
    @Excel(name = "订单金额(分)")
    private Integer totalAmount;

    /** 订单状态 */
    @Excel(name = "订单状态")
    private String status;

    /** 支付完成时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "支付完成时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date paidAt;

    /** 查询次数 */
    @Excel(name = "查询次数")
    private Integer queryCount;

    /** 订单描述 */
    @Excel(name = "订单描述")
    private String description;

    public void setMemberOrderId(Integer memberOrderId)
    {
        this.memberOrderId = memberOrderId;
    }

    public Integer getMemberOrderId()
    {
        return memberOrderId;
    }

    public void setUserId(Long userId)
    {
        this.userId = userId;
    }

    public Long getUserId()
    {
        return userId;
    }

    public void setOutTradeNo(String outTradeNo)
    {
        this.outTradeNo = outTradeNo;
    }

    public String getOutTradeNo()
    {
        return outTradeNo;
    }

    public void setTransactionId(String transactionId)
    {
        this.transactionId = transactionId;
    }

    public String getTransactionId()
    {
        return transactionId;
    }

    public void setTotalAmount(Integer totalAmount)
    {
        this.totalAmount = totalAmount;
    }

    public Integer getTotalAmount()
    {
        return totalAmount;
    }

    public void setStatus(String status)
    {
        this.status = status;
    }

    public String getStatus()
    {
        return status;
    }

    public void setPaidAt(Date paidAt)
    {
        this.paidAt = paidAt;
    }

    public Date getPaidAt()
    {
        return paidAt;
    }

    public void setQueryCount(Integer queryCount)
    {
        this.queryCount = queryCount;
    }

    public Integer getQueryCount()
    {
        return queryCount;
    }

    public void setDescription(String description)
    {
        this.description = description;
    }

    public String getDescription()
    {
        return description;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("memberOrderId", getMemberOrderId())
            .append("userId", getUserId())
            .append("outTradeNo", getOutTradeNo())
            .append("transactionId", getTransactionId())
            .append("totalAmount", getTotalAmount())
            .append("status", getStatus())
            .append("paidAt", getPaidAt())
            .append("queryCount", getQueryCount())
            .append("description", getDescription())
            .append("remark", getRemark())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
